home *** CD-ROM | disk | FTP | other *** search
/ Hacker's Arsenal - The Cutting Edge of Hacking / Hacker's Arsenal - The Cutting Edge of Hacking.iso / texts / misc / zgv_iopl.txt < prev   
Internet Message Format  |  2001-07-11  |  2KB

  1. Date: Fri, 19 Feb 1999 18:10:00 +0000
  2. From: Chris Evans <chris@FERRET.LMH.OX.AC.UK>
  3. To: BUGTRAQ@netspace.org
  4. Subject: Security hole: "zgv"
  5.  
  6. Overview: "zgv" is an image viewer which runs under SVGAlib at the linux
  7. console (probably BSD too). It has to be installed suid-root to access
  8. graphics hardware.
  9.  
  10. History: "zgv" has a long history of security problems. This includes
  11. relatively boring and trivial buffer overflows to the more recent leak of
  12. privileged file descriptors to child processes.
  13.  
  14. This latter hole was interesting. It demonstrated that while an SVGAlib
  15. application drops root privileges after initializing, it is still
  16. vulnerable to buffer overflows because the program holds a vital resource;
  17. a writeable file descriptor to /dev/mem. This applies to all SVGAlib
  18. programs.
  19.  
  20. The new hole I have found _also_ involves leak of privileges to child
  21. processes. This is an issue because a user may supply via the "-a" option
  22. that zgv is to launch a different program to view the picture (using zgv
  23. just as a graphical file manager).
  24.  
  25. The precise privilege leaked to child processes is iopl(3). This is a
  26. processor privilege on intel. iopl(3) gives access to all i/o ports (ouch)
  27. and also usage of the cli(), sti() commands.
  28.  
  29. Going from iopl(3) privs -> root is non-trivial but very possible.
  30.  
  31. I recommend no SVGAlib programs are installed on "secure" systems. Too
  32. many programmers of SVGAlib stuff assume that SVGAlib will drop all privs.
  33. It may drop root, but still retains resources which if taken over can lead
  34. easily to root (/dev/mem fd, iopl(3)).
  35.  
  36. Best to just "rpm -e zgv".
  37.  
  38. I have closed this hole in some RPMs for RedHat5.2 by disabling the "-a"
  39. option.[*]  If you like/use zgv feel free to use these. They are at
  40. ftp://ftp.lmh.ox.ac.uk/users/chris/security. Here are the md5sums
  41.  
  42. 02735c8871bdb7ea6250fa69e7aa32f8  zgv-3.0-7.i386.rpm
  43. 9175ae3db3c2fff266f595fde412913f  zgv-3.0-7.src.rpm
  44.  
  45. This incident leaves me curious as to which other programs use this
  46. privilege? The X server certainly does. Can anyone tell me if the X server
  47. ever launches child processes?
  48.  
  49. Cheers
  50. Chris
  51.  
  52. [*] I couldn't close this hole by doing iopl(0) in the child because, in
  53. Linux-2.0.x you need root privs to lower your iopl! I got this fixed in
  54. 2.2.x.
  55.  
  56.  
  57.  
  58.